package com.foo.designpattern.visitor;

/**
 * com.foo.designpattern.visitor
 * Created with IntelliJ IDEA.
 * Created by jiang on 2016-05-15 15:25.
 *
 * @Description 具体节点(Concrete Node)角色
 * 具体节点(Concrete Node)角色：实现了抽象节点所规定的接受操作。
 */

public class NodeA implements Node {

    /**
     * 接受方法
     *
     * @param visitor 访问者对象
     */
    @Override
    public void accept(Visitor visitor) {
        visitor.visit(this);
    }

    // NodeA 的特有方法
    public String operationA() {
        // 当前类名
        String clazzName = Thread.currentThread().getStackTrace()[1].getClassName();
        // 当前函数名
        String methodName = Thread.currentThread().getStackTrace()[1].getMethodName() + "()";
        return "我是访问者模式里 " + clazzName + " 的特有方法 " + methodName;
    }
}
